/*
 * PushRequestMessage.h
 *
 */

#ifndef PAUSE_MESSAGE_H_
#define PAUSE_MESSAGE_H_

#include "ariba/ariba.h"

using_serialization;

class PauseMessage  : public ariba::Message
{
	VSERIALIZEABLE;
public:
	// to be used with XOR/AND
    typedef enum
    {
        RESUME = 0,
        PAUSE = 1,
        HOLD = 2
    } PAUSE_STATE;


	/// Default constructor, required for automatic de-serialization
	PauseMessage();

	/// Convenient constructor for setting up a new chat message object
	PauseMessage(PAUSE_STATE pause_state, string key, uint64_t position);


	string get_key();
	bool is_pause();
	bool is_hold();
	uint64_t get_position();


private:
	uint8_t pause_state;
	string key;
	uint64_t position;
};

sznBeginDefault(PauseMessage, X)
{
    X && pause_state && position && T(key);
} sznEnd();

#endif /* PAUSE_MESSAGE_H_ */
